home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 3: CDPD 3
/
Almathera Ten on Ten - Disc 3: CDPD3.iso
/
fish
/
726-750
/
742
/
setprefs
/
setprefs.asm
< prev
next >
Wrap
Assembly Source File
|
1995-03-18
|
4KB
|
173 lines
; **************************************************************************
; * Source-Code *
; * *
; * Program-Name : SetPrefs V1.0 *
; * *
; * Author : Michael Wilkes *
; * *
; * Use : Preference-Management *
; * *
; * Date : 01.03.1992 *
; * *
; * Improvements : Technical support by André Willms *
; * *
; * *
; * *
; * *
; **************************************************************************
execbase = 4
allocmem = -198
freemem = -210
openlibrary = -408
closelibrary = -414
setprefs = -324
open = -30
close = -36
read = -42
write = -48
output = -60
preferencelaenge = 232
start:
movem.l d0/a0,-(a7) ; Register retten
jsr openlib ; Dos- und Intuitionlibrary öffnen
jsr getoutput ; Aktuelles Ausgabefenster holen
jsr writeinfo ; Infotext schreiben
movem.l (a7)+,d0/a0 ; Register wiederholen
subq.l #1,d0 ; CR-Zeichen abziehen
beq libend ; Wenn kein Text, dann Ende
move.l d0,d3
lea.l prefname,a1
.l1 move.b (a0)+,(a1)+ ; Zeichen lesen und in Puffer schreiben
subq.l #1,d0
bne .l1
jsr allocprefmem ; Speicher anfordern
move.l dosbase,a6
move.l #prefname,d1
move.l #1005,d2
jsr open(a6) ; Preference öffnen
move.l d0,filehd
bne .w1
jsr writenotfound ; Preference nicht gefunden
bra memend ; Ende
.w1 move.l filehd,d1
move.l prefmemhd,d2
move.l #preferencelaenge,d3
jsr read(a6) ; Preference lesen
move.l filehd,d1
jsr close(a6) ; Preference schliessen
jsr setpref ; Preference aktivieren
memend:
jsr freeprefmem ; Speicher freigeben
libend:
jsr closelib ; Dos- und Intuitionlibrary schliessen
clr.l d0 ; Fehlerflag löschen
rts ; Programmende
getoutput:
move.l dosbase,a6
jsr output(a6)
move.l d0,outputhd
rts
openlib:
move.l execbase,a6
lea.l dosname,a1
jsr openlibrary(a6)
move.l d0,dosbase
lea.l intname,a1
jsr openlibrary(a6)
move.l d0,intbase
rts
closelib:
move.l execbase,a6
move.l dosbase,a1
jsr closelibrary(a6)
move.l intbase,a1
jsr closelibrary(a6)
rts
allocprefmem:
move.l execbase,a6
move.l #preferencelaenge,d0
move.l #2+65536,d1
jsr allocmem(a6)
move.l d0,prefmemhd
rts
freeprefmem:
move.l execbase,a6
move.l prefmemhd,a1
move.l #preferencelaenge,d0
jsr freemem(a6)
rts
writeinfo:
move.l dosbase,a6
move.l outputhd,d1
move.l #tx1,d2
move.l #tx1l,d3
jsr write(a6)
rts
writenotfound:
move.l dosbase,a6
move.l outputhd,d1
move.l #tx2,d2
move.l #tx2l,d3
jsr write(a6)
rts
setpref:
move.l prefmemhd,a0
move.l intbase,a6
move.l #preferencelaenge,d0
move.l #1,d1
jsr setprefs(a6)
rts
intbase: dc.l 0
dosbase: dc.l 0
prefmemhd: dc.l 0
outputhd: dc.l 0
filehd: dc.l 0
intname: dc.b "intuition.library",0
dosname: dc.b "dos.library",0
prefname: dcb.b 80,0
tx1: dc.b $a,$9b,"0;33;40",$6d
dc.b "SetPrefs V1.0",$9b,"0;31;40",$6d
dc.b " (C)01.03.1992 by Michael Wilkes",$a
dc.b "Thanx to André Willms for technical support",$a
dc.b "USAGE: SetPrefs <prefname>",$a,$a
tx2: dc.b "Preference not found !",$a,$a
tx3:
tx1l = tx2-tx1
tx2l = tx3-tx2